public class CommandPatternDemo {
    public static void main(String[] args) {
        // 具体的命令实现（就是一个行为类，也可以写在具体的命令实现类里边, 例如TakeMoneyOrder）
        Stock stock = new Stock();

        // 程序可以接受三个命令（声明）：一个购买，一个售卖，一个收钱
        BuyOrder buyOrder = new BuyOrder(stock);
        SellOrder sellOrder = new SellOrder(stock);
        TakeMoneyOrder takeMoneyOrder = new TakeMoneyOrder();

        // 具体的命令的接收者，接受了三个命令，购买，售卖，收钱
        Broker broker = new Broker();
        broker.takeOrder(buyOrder);
        broker.takeOrder(sellOrder);
        broker.takeOrder(takeMoneyOrder);

        // 执行这三个命令（宏）
        broker.placeOrders();
    }
}
